<?php

namespace app\admin\controller;
use think\Controller;

class Login extends Controller{
    public function index(){
        if(request()->isPost()) {
            //登陆逻辑
            //获取数据
            $data = input('post.');
            //检验数据
            $validate = validate('Admin');//表单验证器
            if(!$validate->check($data)){
                $this->success($validate->getError());
                exit;
            }

            //通过用户名到数据库获取相关信息
            $ret = model('Admin')->get(['username'=>$data['username']]);

            //判断用户名
            if(!$ret || $ret->status != 1){
                $this->error("用户名不存在！");
            }
            //判断密码
            if($ret->password != md5($data['password'].$ret->code)){
                $this->error("密码不正确！");
            }

            //数据库更新最后登陆时间和IP
            model('Admin')->updateById([
                'last_login_ip'=>$_SERVER["REMOTE_ADDR"],
                'last_login_time'=>time()
            ],$ret->id);

            //session保存用户信息
            session('adminAccount', $ret, 'admin');

            //返回成功并跳转页面
            return $this->success("登陆成功",url('index/index'));

        } else {
            //未登录返回登陆界面
            //获取session
            $account = session('adminAccount','','admin');
            if($account && $account->id) {
                return $this->redirect(url('index/index'));
            }
            return $this->fetch();
        }
    }

    public function logout(){
        //清除session
        session(null,'admin');
        //跳转登陆页
        return $this->redirect(url('login/index'));
    }
}